package com.yuandian.business.monitor.service;

import com.yuandian.api.business_monitor.po.CockpitParams;
import com.yuandian.api.business_monitor.vo.*;

import java.util.List;

/**
 * 说明：首页大屏数据驾驶舱service接口
 *
 * @Author yanjun
 * @Date 2020/9/25 16:27
 */
public interface ICockpitService {

	/**
	 * 查询系统总览
	 *
	 * @param params         首页大屏数据驾驶舱搜索条件
	 * @return 首页大屏-系统总览vo对象
	 */
	List<SystemOverview> systemOverview(CockpitParams params);

	/**
	 * 查询失败量趋势
	 * @param params 首页大屏数据驾驶舱搜索条件
	 * @return 首页大屏-失败量趋势vo对象
	 */
    FailTrendVo failTrend(CockpitParams params);

    /**
     * 查询系统业务访问量TopN
     * @param params 首页大屏数据驾驶舱搜索条件
     * @return 首页大屏-系统业务访问量TopN vo对象
     */
    List<BusinessVisitsTopNVo> businessVisitsTopN(CockpitParams params);

//    /**
//     * 查询系统业务健康度TopN
//     * @param params 首页大屏数据驾驶舱搜索条件
//     * @return 首页大屏-系统业务健康度TopN vo对象
//     */
    List<BusinessHealthyTopNVo> businessHealthyTopN(CockpitParams params);

    /**
     * 查询系统请求量趋势
     * @param params 首页大屏数据驾驶舱搜索条件
     * @return 首页大屏-系统请求量趋势vo对象
     */
	RequestTrend requestTrend(CockpitParams params);
//
//    /**
//     * 查询系统步骤请求耗时TopN
//     * @param params 首页大屏数据驾驶舱搜索条件
//     * @return 首页大屏-系统步骤请求耗时TopN vo对象
//     */
//    List<StepReqTimeTopNVo> stepReqTimeTopN(CockpitParams params);
//
    /**
     * 查询系统网端告警TopN
     * @param params 首页大屏数据驾驶舱搜索条件
     * @return 首页大屏-系统网端告警TopN vo对象
     */
    List<SegmentAlarmTopNVo> segmentAlarmTopN(CockpitParams params);

    /**
     * 查询系统告警趋势
     * @param params 首页大屏数据驾驶舱搜索条件
     * @return 首页大屏-系统告警趋势vo对象
     */
	SystemAlarmTrend systemAlarmTrend(CockpitParams params);

	/**
	 * 首页大屏 点击‘展开’ 查询指定系统一整天的 请求量, 告警量, 失败量
	 *
	 * @param params 首页大屏数据驾驶舱搜索条件
	 * @return
	 */
	List<RequestTrendVo> allTrendList(CockpitParams params);

	/**
	 * 查询流量趋势
	 * @param params 首页大屏数据驾驶舱搜索条件
	 * @return 首页大屏-查询流量趋势vo对象
	 */
	FlowTrendVo queryFlowTrend(CockpitParams params);
	/**
	 * 业务处理时长趋势
	 * @param params 首页大屏数据驾驶舱搜索条件
	 * @return 首页大屏-业务处理时长趋势vo对象
	 */
	BusHandleTrendVo queryBusinessHandleTrend(CockpitParams params);

	/**
	 * 网端请求top
	 * @param params 首页大屏数据驾驶舱搜索条件
	 * @return 首页大屏-业务处理时长趋势vo对象
	 */
	List<SegmentReqTopNVo> querySegmentReqTop(CockpitParams params);

	/**
	 * 首页大屏-网端流量top10占比
	 *
	 * @return 首页大屏-网端流量top10占比
	 */
    List<SegmentFlowTopVo> querySegmentFlowTop(CockpitParams params);
//
//
//    List<Integer> queryIndicators(String category);
//
//    /**
//     * 查询高级告警信息列表
//     * @return 首页大屏-高级告警信息vo对象集合
//     */
//    List<AdvancedAlarmInfoVo> advancedAlarmInfoList();
}
